package com.example.statemachine.support.annotation;

import com.example.statemachine.core.EventEnum;
import com.example.statemachine.core.StateEnum;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface StateTransition {
    StateEnum source();

    EventEnum event();

    StateEnum target();

    String description() default "";
}